﻿using Grow.Module.Builder;
using Grow.Module.Options;
using Grow.Scheduler.Job;

namespace Grow.Scheduler.CreateScheduler
{
    /// <summary>
    /// 任务调度 构建器
    /// </summary>
    public interface ICreateSchedulerBuilder : IBuilder
    {
        ICreateSchedulerBuilder AddJob<TJob>() where TJob : class, IJob;

        ICreateSchedulerBuilder AddJob<TJob, TJobData>() where TJob : class, IJob<TJobData>;

        ICreateSchedulerBuilder AddSchedulerOptions(Action<IOptionsBind, SchedulerOptions> schedulerOptions);
    }
}
